Metastability is a reliability concern where a plurality of different signals are provided to a circuit at the same or at nearly the same time, including where an asynchronous signal is to be synchronized with a latching signal (e.g., a clock signal). In a rising edge triggered flip-flop, for example, if an input signal transitions right before a rising clock edge and violates the setup time of the flip-flop, if the input signal transitions at the same time as the rising clock edge, or if the input signal transitions right after the rising clock edge and violates the hold time of the flip-flop, then the flip-flop may at least temporarily enter a metastable state. The metastable state may be that one or more nodes of the flip-flop are at an invalid logic level (e.g., somewhere between a logic high and a logic low). The invalid logic level may result from the one or more nodes not being fully charged or discharged when the flip-flop latches the input signal at the rising clock edge because, for example, the one or more nodes did not get fully pulled-up or fully pulled-down.
When a flip-flop, for example, enters a metastable state, the output of the flip-flop may be incorrect in that it does not correspond to the input signal provided to the flip-flop. The output may, for example, linger at an invalid logic level for an unacceptable period of time. Alternatively, or in addition to the output lingering at an invalid logic level, the output may not correctly correspond to the input signal because the output may transition too early or too late (i.e., have an incorrect phase). In some cases, the phase of the output will be correct, but the width of the output pulse will be incorrect. The lingering, the incorrect phase, and/or the incorrect pulse width resulting from the metastability may cause unintended operation of a circuit or apparatus that receives the output of the flip-flop.
The conventional approach to preventing unintended operation resulting from metastability includes chaining one or more flip-flops in series to help prevent lingering output signals from propagating to a subsequent circuit. Although such serial chaining of flip-flops may reduce the likelihood that the output signal of the serial chain lingers, this approach generally does not address the root cause of the metastability (e.g., latch nodes that do not get fully charged or discharged before the flip-flop latches) and instead simply mitigates some of the consequences from when a flip-flop experiences metastability. Furthermore, serial chaining of flip-flops tends to consume power, present additional clock and signal loading, and add delay to a signal path, all of which may be undesirable in some cases.